package cmo.neutech.day04;

import java.util.Scanner;

import static java.lang.Math.pow;

public class Dome3 {
    public static void main(String[] args) {
        Scanner update = new Scanner(System.in);
//      1.问题描述：水仙花数指一个特殊的三位数，它的各位数字的立方和与其自身相等。
//        请输出所有的水仙花数。
//        编程思路：关键是将三位数的个位、十位和百位数字分别拆分出来。
//        int a,b,c;
//        for(int i=100;i<1000;i++){
//            a = i/100;
//            b = i/10%10;
//            c = i%10;
//            if(a*a*a+b*b*b+c*c*c == i){
//                System.out.println(i);
//            }
//        }
//
//        2.问题描述：最大公约数指两个数字公共的约数中最大的，
//        例如数字3的约数有1、3，数字9的约数有1、3、9，
//        则数字3和数字9的公共约数有1和3，其中3是最大的公约数。
//        第一种编程思路：假设初始值从1开始逐步增1，
//        每次把能同时使两个数整除的值都存储起来，那么最后一个存储起来的值就是最大的约数。
//        int x = update.nextInt();
//        int y = update.nextInt();
//        int Max;
//        if(x > y) Max = x;
//        else Max = y;
//        for(int i = Max;i>1;i--){
//            if(x % i ==0 && y % i ==0){
//                System.out.println(i);
//                break;
//            }
//        }
//
//        3.问题描述：母鸡3元/只，公鸡4元/只，小鸡0.5元/只，
//        如果花100元钱买100只鸡，每一种鸡可以买0只，请问有哪些可能？
//        第一种编程思路：首先确定母鸡的购买数量为0，使公鸡的购买数量从0-100逐次变化，
//        每当公鸡的数量变化一次，小鸡的数量就从0逐次变化到100，其数值组合如表所示。
//        for(int x=0;x<=100;x++){
//            for(int y=0;y<=100;y++){
//                for(int z=0;z<=100;z++){
//                    if(x+y+z == 100 && x*4+y*3+z*0.5 == 100){
//                        System.out.println("公鸡数"+x+"母鸡数"+y+"小鸡数"+z);
//                    }
//                }
//            }
//        }
//
//        4.问题描述：在控制台中用星号"*"输出如下样式的图形
//        编程思路：在外部使用循环语句执行5次每次打印1行，每行的内容分别为空格和星号""，每行空格缩进的数量为5减去所在行数，
//        星号""的数量是所在行数的2倍减1。在内部使用循环语句首先打印空格，
//        然后打印星号"*"，对应的打印次数用循环次数控制，打印星号之后就可以换行。
//        int xing = update.nextInt();
//        int flog = xing;
//        for(int i = 1 ;i<=xing;i++){
//            for(int j = 1 ;j<=flog-1;j++){
//                System.out.print(" ");
//            }
//            for(int v = 1;v <= 1+2*(i-1);v++){
//                System.out.print("*");
//            }
//            flog--;
//            System.out.print("\n");
//        }
//
//        5.问题描述：如何判断某个自然数是否为质数。
//        int M = update.nextInt();
//        boolean N = true;
//        for(int i=2;i<M;i++){
//            if(M % i == 0){
//                N = false;
//                System.out.println(M+"不是质数");break;
//            }
//        }
//        if(N){
//            System.out.println(M+"是质数");
//        }
    }
}
